package com.wang.jmonkey.modules.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.pagehelper.Page;
import com.wang.jmonkey.common.annotation.PageDefinition;
import com.wang.jmonkey.common.model.enums.BooleanEnum;
import com.wang.jmonkey.modules.system.model.dto.SystemUserDto;
import com.wang.jmonkey.modules.system.model.entity.SystemUserEntity;
import com.wang.jmonkey.modules.system.model.param.SystemUserParam;
import com.wang.jmonkey.modules.system.model.query.SystemUserQuery;
import org.apache.ibatis.annotations.Param;

/**
 * (SystemUser)表数据库访问层
 *
 * @author HeJiawang
 * @since 2021-05-10 10:52:15
 */
public interface SystemUserMapper extends BaseMapper<SystemUserEntity> {

    /**
     * 校验用户登陆名称是否重复
     * @param userParam 用户登陆名称、用户id
     * @return 个数大于0，重复
     */
    int checkUsername(SystemUserParam userParam);

    /**
     * 分页查询用户信息
     * @param query query
     * @return Page
     */
    @PageDefinition
    Page<SystemUserDto> page(SystemUserQuery query);

    /**
     * 修改用户面
     * @param user 用户密码信息
     * @return 修改成功
     */
    int updatePassword(SystemUserEntity user);

    /**
     * 锁定、解锁用户
     * @param id 用户id
     * @param lock 是否锁定
     * @return
     */
    int updateLock(@Param("id") Long id, @Param("lock") BooleanEnum lock);

    /**
     * 查看详情
     * @param id 用户id
     * @return 用户信息
     */
    SystemUserDto getDtoById(@Param("id") Long id);
}
